All files / application/user/commands UpdateUserProfileCommandHandler.js

0% Statements 0/8
0% Branches 0/2
0% Functions 0/2
0% Lines 0/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33                                                                 
/**
 * Update User Profile Command Handler
 * Handles user profile update logic
 */
class UpdateUserProfileCommandHandler {
  constructor(prisma) {
    this.prisma = prisma;
  }
 
  /**
   * Execute update profile command
   * @param {UpdateUserProfileCommand} command 
   * @returns {Promise<Object>} Updated user data
   */
  async handle(command) {
    const { userId, name } = command;
 
    if (!name) {
      throw new Error('Name is required');
    }
 
    const user = await this.prisma.user.update({
      where: { id: userId },
      data: { name }
    });
 
    const { password, ...userWithoutPassword } = user;
    return userWithoutPassword;
  }
}
 
module.exports = UpdateUserProfileCommandHandler;